<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /*
        大部分情况下我们是不需要修改原型对象的
         注意：
            千万不要通过类的实例去修改原型
                1.通过一个对象影响所有同类对象，
                2.修改原型先得创建实例，
                3.危险
        处理通过__proto__能访问对象的原型外
            还可以通过类的prototype属性，来访问实例的原型
            修改原型时，最好通过类去修改
            好处：
                1.修改就是修改所有实例的原形
                2.无需创建实例即可完成对类的修改
            原则：
                1.原型尽量不要手动改
                2.改，也不能通过实例对象改
                3.通过类的prototype属性去修改
                4.最好不要直接给prototype去赋值
    */
    class Animal {
      name = "可可";
      age = 1;
      say() {
        console.log("动物");
      }
    }
    class Dog {
        say(){
            console.log('dog类');
        }
    }
    let d1 = new Animal();
    d1.say()
    d1.__proto__ = Dog.prototype;
    d1.say();
    console.log(d1.__proto__===Dog.prototype);
    console.log(d1);


  </script>
</html>
